#ifndef __OPCODES_H__
#define __OPCODES_H__

enum OpCodes
{
	NOP = 0,
	ADD = 1,
	SUB = 2,
	MUL = 3,
	DIV = 4,
	NUM_CHAR_HLT = 5,					// op code group
	SLA_SRA_SLAX_SRAX_SLC_SRC = 6,				// op code group
	MOVE = 7,
	LDA = 8,
	LD1 = 9,
	LD2 = 10,
	LD3 = 11,
	LD4 = 12,
	LD5 = 13,
	LD6 = 14,
	LDX = 15,
	LDAN = 16,
	LD1N = 17,
	LD2N = 18,
	LD3N = 19,
	LD4N = 20,
	LD5N = 21,
	LD6N = 22,
	LDXN = 23,
	STA = 24,
	ST1 = 25,
	ST2 = 26,
	ST3 = 27,
	ST4 = 28,
	ST5 = 29,
	ST6 = 30,
	STX = 31,
	STJ = 32,
	STZ = 33,
	JMP_JSJ_JOV_JNOV_JL_JE_JG_JGE_JNE_JLE = 39,		// op code group
	JAN_JAZ_JAP_JANN_JANZ_JANP = 40,			// op code group
	J1N_J1Z_J1P_J1NN_J1NZ_J1NP = 41,			// op code group
	J2N_J2Z_J2P_J2NN_J2NZ_J2NP = 42,			// op code group
	J3N_J3Z_J3P_J3NN_J3NZ_J3NP = 43,			// op code group
	J4N_J4Z_J4P_J4NN_J4NZ_J4NP = 44,			// op code group
	J5N_J5Z_J5P_J5NN_J5NZ_J5NP = 45,			// op code group
	J6N_J6Z_J6P_J6NN_J6NZ_J6NP = 46,			// op code group
	JXN_JXZ_JXP_JXNN_JXNZ_JXNP = 47,			// op code group
	INCA_DECA_ENTA_ENNA = 48,				// op code group
	INC1_DEC1_ENT1_ENN1 = 49,				// op code group
	INC2_DEC2_ENT2_ENN2 = 50,				// op code group
	INC3_DEC3_ENT3_ENN3 = 51,				// op code group
	INC4_DEC4_ENT4_ENN4 = 52,				// op code group
	INC5_DEC5_ENT5_ENN5 = 53,				// op code group
	INC6_DEC6_ENT6_ENN6 = 54,				// op code group
	INCX_DECX_ENTX_ENNX = 55,				// op code group
	CMPA = 56,
	CMP1 = 57,
	CMP2 = 58,
	CMP3 = 59,
	CMP4 = 60,
	CMP5 = 61,
	CMP6 = 62,
	CMPX = 63,
};
#endif
